' This program exported from BASIC Anywhere Machine (Version [5.2.3].[2024.09.09.00.00]) on 2025.07.19 at 04:12 (Coordinated Universal Time)
' This program is a port and mod, by Charlie Veniot, of a PC-BASIC
' program by Richard Keijzer shared with the "BASIC Programming Language"
' Facebook group (https://www.facebook.com/share/p/16nkq6Kn6c/)
110 SCREEN _NEWIMAGE( 550, 520, 12 )
COLOR , 63
CLS
120 XA = 6 : YA = 5 : ZA = 25 : XB = 16 : YB = 4 : ZB = -28
125 SV = CHOOSE( INT( RND * 4 + 1 ), 1, 0.5, 0.4, 0.3 )
COLOR INT( RND * 63 )
130 FOR Y = -10 TO 15 STEP SV : FOR X = -5 TO 30 STEP SV
140 T = X + 5 : GOSUB 200
150 NEXT X : SLEEP 0.1 : NEXT Y
COLOR INT( RND * 63 )
160 FOR X = -5 TO 30 STEP SV : FOR Y = -10 TO 15 STEP SV
170 T = Y + 10 : GOSUB 200
180 NEXT Y : SLEEP 0.1 : NEXT X
190 SLEEP 1 : GOTO 125
' 🟠🟠🟠GOSUB ROUTINE
200 XNEW = X * 20 + 10 * Y
210 L = SQR( ( XA - X ) ^ 2 + ( YA - Y ) ^ 2 ) + 1 : REM distance
220 L2 = SQR( ( XB - X ) ^ 2 + ( YB - Y ) ^ 2 ) + 1 : REM 2nd distance
230 YNEW = 270 - Y * 5 - 10 * ( ZA / L + ZB / L2 )
240 IF T > 0 THEN LINE ( XOLD, YOLD ) - ( XNEW, YNEW )
250 XOLD = XNEW : YOLD = YNEW
260 RETURN